package view;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

import controller.Sistema;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class MenuPrincipal extends javax.swing.JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JOptionPane IngresarNro;
	private JOptionPane MensajeError;
	private JOptionPane MensajeConfirmacion;
	private JButton botonSalir;
	private JMenuItem bajaProdMenuItem;
	private JMenuItem modifyProdMenuItem;
	private JMenuItem altaProdMenuItem;
	private JMenu menuProductos;
	private JMenuItem bajaMatMenuItem;
	private JMenuItem modifyMatMenuItem;
	private JMenuItem altaMatMenuItem;
	private JMenuItem bajaPSTMenuItem;
	private JButton botonVenta;
	private JLabel labelTitulo1;
	private JLabel labelTitulo2;
	private JMenuItem bajaConjuntoMenuItem;
	private JMenuItem bajaPCTMenuItem;
	private JMenuItem modifyConjuntoMenuItem;
	private JMenuItem modifyPCTMenuItem;
	private JMenuItem modifyPSTMenuItem;
	private JMenuItem altaConjuntoMenuItem;
	private JMenuItem altaPCTMenuItem;
	private JMenuItem altaPSTMenuItem;
	private JMenu menuMateriales;
	private JMenuBar barraBotones;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				try {
					Sistema sistema = Sistema.getInstance();
					MenuPrincipal inst = new MenuPrincipal(sistema);
					inst.setLocationRelativeTo(null);
					inst.setVisible(true);
				}
				catch (Exception e){
					e.printStackTrace();
				}
			}
		});
	}
	
	public MenuPrincipal(Sistema sistema) {
		super();
		initGUI(sistema);
		this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
	}
	
	private void initGUI(final Sistema sistema) {
		try {
			{
				getContentPane().setLayout(null);
				{
					labelTitulo1 = new JLabel();
					getContentPane().add(labelTitulo1);
					labelTitulo1.setText("Sistema de Venta y Reposicion");			
					labelTitulo1.setBounds(12, 121, 351, 43);
					labelTitulo1.setFont(new java.awt.Font("Times New Roman",2,24));
				}
				{
					labelTitulo2 = new JLabel();
					getContentPane().add(labelTitulo2);
					labelTitulo2.setText("de Indumentaria");			
					labelTitulo2.setBounds(12, 176, 326, 30);
					labelTitulo2.setFont(new java.awt.Font("Times New Roman",2,24));
				}
			}
			this.setSize(400, 325);
			{
				barraBotones = new JMenuBar();
				setJMenuBar(barraBotones);
				{
					menuMateriales = new JMenu();
					barraBotones.add(menuMateriales);
					menuMateriales.setText("Materiales");
					{
						altaMatMenuItem = new JMenuItem();
						menuMateriales.add(altaMatMenuItem);
						altaMatMenuItem.setText("Alta");
						altaMatMenuItem.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								AltaMaterial ventanaAltaMaterial = new AltaMaterial();
								ventanaAltaMaterial.setVisible(true);
							}
						});
					}
					{
						modifyMatMenuItem = new JMenuItem();
						menuMateriales.add(modifyMatMenuItem);
						modifyMatMenuItem.setText("Modificacion");
						modifyMatMenuItem.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								ModificacionMaterial ventanaModifMaterial = new ModificacionMaterial();
								ventanaModifMaterial.setVisible(true);
							}
						});
					}
					{
						bajaMatMenuItem = new JMenuItem();
						menuMateriales.add(bajaMatMenuItem);
						bajaMatMenuItem.setText("Baja");
						bajaMatMenuItem.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								try {
									String codigo;
									do{
										codigo = JOptionPane.showInputDialog(IngresarNro,"Ingrese el codigo del material: ","Baja Material",JOptionPane.PLAIN_MESSAGE);
										if (codigo.isEmpty())
											JOptionPane.showMessageDialog(MensajeError, "Por favor ingrese un codigo","Error!",JOptionPane.ERROR_MESSAGE);
									}while (codigo.isEmpty());
									if (codigo != null){
										int rc = JOptionPane.showConfirmDialog(MensajeConfirmacion, "Esta seguro que desea eliminar el material " + codigo + "?");
										if (rc == 0){
											boolean s = Sistema.getInstance().eliminarMaterial(Integer.valueOf(codigo));
											//setVisible(false);
											if (s){
												JOptionPane.showMessageDialog(MensajeConfirmacion, "El material se ha eliminado satisfactoriamente");
											}else{
												JOptionPane.showMessageDialog(MensajeError, "El material es parte de uno o mas productos","Error!",JOptionPane.ERROR_MESSAGE);
											}
										}
									}
								}
								catch (Exception e){
									e.printStackTrace();
								}
							}
						});
					}
				}
				{
					menuProductos = new JMenu();
					barraBotones.add(menuProductos);
					menuProductos.setText("Productos");
					{
						altaProdMenuItem = new JMenu();
						menuProductos.add(altaProdMenuItem);
						altaProdMenuItem.setText("Alta");
						{
							altaPSTMenuItem = new JMenuItem();
							altaProdMenuItem.add(altaPSTMenuItem);
							altaPSTMenuItem.setText("Prenda sin temporada");
							altaPSTMenuItem.addActionListener(new ActionListener() {
								public void actionPerformed(ActionEvent evt) {
									AltaPrenda PSTemp = new AltaPrenda();
									PSTemp.setVisible(true);
								}
							});
							
						}
						{
							altaPCTMenuItem = new JMenuItem();
							altaProdMenuItem.add(altaPCTMenuItem);
							altaPCTMenuItem.setText("Prenda con temporada");
							altaPCTMenuItem.addActionListener(new ActionListener() {
								public void actionPerformed(ActionEvent evt) {
									AltaPrendaTemporada PCTemp = new AltaPrendaTemporada();
									PCTemp.setVisible(true);
								}
							});
						}
						{
							altaConjuntoMenuItem = new JMenuItem();
							altaProdMenuItem.add(altaConjuntoMenuItem);
							altaConjuntoMenuItem.setText("Conjunto");
							altaConjuntoMenuItem.addActionListener(new ActionListener() {
								public void actionPerformed(ActionEvent e) {
									AltaConjunto ac = new AltaConjunto();
									ac.setVisible(true);
								}
							});
						}
					}
					{
						modifyProdMenuItem = new JMenu();
						menuProductos.add(modifyProdMenuItem);
						modifyProdMenuItem.setText("Modificacion");
						{
							modifyPSTMenuItem = new JMenuItem();
							modifyProdMenuItem.add(modifyPSTMenuItem);
							modifyPSTMenuItem.setText("Prenda sin temporada");
							modifyPSTMenuItem.addActionListener(new ActionListener() {
								public void actionPerformed(ActionEvent evt) {
									ModificarPrenda PSTemp = new ModificarPrenda();
									PSTemp.setVisible(true);
								}
							});
						}
						{
							modifyPCTMenuItem = new JMenuItem();
							modifyProdMenuItem.add(modifyPCTMenuItem);
							modifyPCTMenuItem.setText("Prenda con temporada");
							modifyPCTMenuItem.addActionListener(new ActionListener() {
								public void actionPerformed(ActionEvent evt) {
									ModificarPrendaTemporada PCTemp = new ModificarPrendaTemporada();
									PCTemp.setVisible(true);
								}
							});
						}
						{
							modifyConjuntoMenuItem = new JMenuItem();
							modifyProdMenuItem.add(modifyConjuntoMenuItem);
							modifyConjuntoMenuItem.setText("Conjunto");
							modifyConjuntoMenuItem.addActionListener(new ActionListener() {
								public void actionPerformed(ActionEvent e) {
									ModificacionConjunto mc = new ModificacionConjunto();
									mc.setVisible(true);
								}
							});
						}
					}
					{
						bajaProdMenuItem = new JMenu();
						menuProductos.add(bajaProdMenuItem);
						bajaProdMenuItem.setText("Baja");
	
						{
							bajaPSTMenuItem = new JMenuItem();
							bajaProdMenuItem.add(bajaPSTMenuItem);
							bajaPSTMenuItem.setText("Prenda sin temporada");
							bajaPSTMenuItem.addActionListener(new ActionListener(){
								public void actionPerformed(ActionEvent evt){
									try{
										boolean res = false;
										String codigo = JOptionPane.showInputDialog(IngresarNro, "Ingrese el codigo de la Prenda a dar de baja: ");
										if (!codigo.isEmpty()){
											int rc = JOptionPane.showConfirmDialog(MensajeConfirmacion, "Esta seguro que desea eliminar la prenda "+ codigo + "?","Confirmacion", JOptionPane.OK_CANCEL_OPTION);
											if (rc == 0){
												res = Sistema.getInstance().eliminarPrendaSinTemporada(Integer.valueOf(codigo));
											}
											if (res){
												JOptionPane.showMessageDialog(MensajeConfirmacion, "La prenda se ha eliminado satisfactoriamente");
											}else{
												JOptionPane.showMessageDialog(MensajeError, "La prenda no pudo ser eliminada","Error!",JOptionPane.ERROR_MESSAGE);
											}
										}
									}
									
									catch (Exception e){
										e.printStackTrace();
									}
								}
							});
							
						}
						
						{
							bajaPCTMenuItem = new JMenuItem();
							bajaProdMenuItem.add(bajaPCTMenuItem);
							bajaPCTMenuItem.setText("Prenda con temporada");
							bajaPCTMenuItem.addActionListener(new ActionListener() {
								public void actionPerformed(ActionEvent evt) {
									try{
										boolean res = false;
										String codigo = JOptionPane.showInputDialog(IngresarNro, "Ingrese el codigo de la Prenda a dar de baja: ");
										if(!codigo.isEmpty()){
											int rc = JOptionPane.showConfirmDialog(MensajeConfirmacion, "Esta seguro que desea eliminar la prenda "+ codigo + "?","Confirmacion", JOptionPane.OK_CANCEL_OPTION);
											if (rc == 0){
												res = Sistema.getInstance().eliminarPrendaTemporada(Integer.valueOf(codigo));
											}
											if (res){
												JOptionPane.showMessageDialog(MensajeConfirmacion, "La prenda se ha eliminado satisfactoriamente");
											}else{
												JOptionPane.showMessageDialog(MensajeError, "La prenda no pudo ser eliminada","Error!",JOptionPane.ERROR_MESSAGE);
											}
										}
									}
									catch (Exception e){
										e.printStackTrace();
									}
								}
							});
						}
						{
							bajaConjuntoMenuItem = new JMenuItem();
							bajaProdMenuItem.add(bajaConjuntoMenuItem);
							bajaConjuntoMenuItem.setText("Conjunto");
							bajaConjuntoMenuItem.addActionListener(new ActionListener() {
								public void actionPerformed(ActionEvent evt) {
									try{
										boolean res = false;
										String codigo = JOptionPane.showInputDialog(IngresarNro, "Ingrese el codigo del Conjunto a dar de baja: ");
										if (!codigo.isEmpty()){
											int rc = JOptionPane.showConfirmDialog(MensajeConfirmacion, "Esta seguro que desea eliminar el conjunto "+ codigo + "?","Confirmacion", JOptionPane.OK_CANCEL_OPTION);
											if (rc == 0){
												res = Sistema.getInstance().eliminarConjunto(Integer.valueOf(codigo));
												if (res){
													JOptionPane.showMessageDialog(MensajeConfirmacion, "El conjunto se ha eliminado satisfactoriamente");
												}else{
													JOptionPane.showMessageDialog(MensajeError, "El conjunto no pudo ser eliminada","Error!",JOptionPane.ERROR_MESSAGE);
												}
											}
										}
									}catch(Exception e){
										e.printStackTrace();
									}
								}
							});
						}
					}
				}
				{
					botonSalir = new JButton();
					barraBotones.add(botonSalir);
					botonSalir.setText("Salir");
					botonSalir.addActionListener(new ActionListener() {
						public void actionPerformed(ActionEvent evt) {
							//setVisible(false);
							System.exit(EXIT_ON_CLOSE);
						}
					});
				}
				{
					botonVenta = new JButton();
					barraBotones.add(botonVenta);
					botonVenta.setText("Registrar Venta");
					botonVenta.addActionListener(new ActionListener() {
						public void actionPerformed(ActionEvent evt) {
							VentanaVenta ventanaVenta = new VentanaVenta();
							ventanaVenta.setVisible(true);
						}
					});
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}